#include <stdio.h>
#include <stdlib.h>
#define StackSize 100 //栈的初始化大小
#define StackIncrement 10 
#define OK 1 
typedef int Status;
typedef char ElemType;
struct Stack{
	ElemType *base;
    ElemType *top;
    int stackSize; 
}; 
/************初始化栈*****************/
Status initStack(struct Stack &s){ //一般栈和队列用取地址符，链表一般用（*） 
	s.base = (ElemType*)malloc(StackSize*sizeof(struct Stack));//给栈底分配内存！ 
	if(!s.base) {
		printf("分配内存失败！");
		return 0;
	}
	s.top=s.base;//栈底和栈顶同时指向栈底 
	s.stackSize = StackSize;//栈的空间是一个固定值 
	return OK;//返回1 
}
/*************获取栈顶元素*************/ 
Status GetTop(struct Stack s,ElemType &e){
	if(s.top==s.base){
		printf("栈空！");
		return 0;
	}
	e = *(s.top-1);
	return OK;
} 

Status Push(struct Stack &s,ElemType &e){
	if(s.top-s.base >= s.stackSize){//栈满了。需要追加空间！ 
		newbase =  
	} 
}

int main(){
	
	return 0;
} 